package com.hifar.test.entrust.pojo.VO;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hifar.model.BaseModel;
import com.hifar.plat.AopOption.Dict;
import com.hifar.plat.AopOption.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * @author zhuWeiWei
 * @description 委托单导出VO
 * @date 2025/4/21 16:54
 */
@Data
@ApiModel("委托单导出VO")
public class HfEnvEntrustExportVO extends BaseModel {

    private static final long serialVersionUID = 1L;

    /**
     * 委托单号
     */
    @Excel(name = "委托单号", sort = 1)
    @ApiModelProperty(value = "委托单号")
    private String entrustCode;


    @Excel(name = "状态", sort = 2)
    @ApiModelProperty("委托单状态")
    private String statusText;


    @Excel(name = "委托日期", sort = 3, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "委托日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "委托时间不能为空!")
    private Date entrustTime;


    /**
     * 委托部门
     */
    @Excel(name = "委托部门", sort = 4)
    @ApiModelProperty(value = "委托部门")
    @NotEmpty(message = "委托部门不能为空!")
    private String entrustCust;


    @Excel(name = "委托人", sort = 5)
    @ApiModelProperty(value = "委托人姓名")
    private String entrustUserName;


    @Excel(name = "联系方式", sort = 6)
    @ApiModelProperty(value = "委托人联系方式")
    private String entrustUserPhone;

    @Excel(name = "课题名称", sort = 7)
    @ApiModelProperty(value = "课题名称")
    private String subjectName;

    @Excel(name = "课题编号", sort = 8)
    @ApiModelProperty(value = "课题编号")
    private String subjectNo;


    @Excel(name = "样品数量", sort = 9)
    @ApiModelProperty(value = "样品数量")
    private String productNum;


    @Excel(name = "期望完成日期", sort = 10, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "期望完成日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date predictFinishTime;

    /**
     * 试验性质编码
     */
    @Excel(name = "试验性质", dictCode = "hf_env_test_property", sort = 11)
    @ApiModelProperty(value = "试验性质编码")
    @Dict(dictCode = "hf_env_test_property")
    @NotEmpty(message = "试验性质编码不能为空!")
    private String testPropertyCode;

    @Excel(name = "项目介绍", sort = 12)
    @ApiModelProperty("项目介绍")
    private String remarks;

}
